home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Shareware World / Graphics / Fractal Explorer / FE Manual next >
Text File  |  1998-12-13  |  32KB  |  250 lines

  1.  
  2.  
  3.  
  4. Fractal Explorer draws two types of fractal pictures: escape fractals and Newton fractals. The Mandelbrot fractal is a well-known example of an escape fractal.
  5.  
  6. Complex Numbers
  7. Both types of fractals are constructed using complex numbers, so I'll give a quick description of this wonderful extension of the real numbers. Just as a fraction is described by means of a pair of whole numbers which provide the numerator and denominator of the fraction, a complex number z is described using two real numbers or decimals  a and b say, and is written as z = a + b i.  The number a is called the real part part of the complex number and the number b is called the imaginary part. The symbol i can be regarded as a place marker, but is also used as a shorthand for the number 0 + 1 i.
  8. We can picture the complex numbers by means points in a plane by marking the point (a,b) to represent the complex number a + b i. 
  9. The "ordinary" real numbers appear along the horizontal or real axis as numbers  of the form a + 0 i, so you can visualize the real numbers as sitting inside the complex numbers, or equivalently, visualize the complex numbers as extending the real numbers by moving from a line out into a plane. The numbers of the form 0 + b i or just b i appear on the vertical or imaginary axis and form the so-called pure imaginary numbers.
  10. The operations of addition, subtraction, multiplication and division can be extended from the real numbers to the complex numbers. The simplest description of how to do this is to say that the symbol i must be treated just as if it was an ordinary number, but with the peculiar property that i x i = -1. In other words, i is a square root for -1. For example, 1 + 2 i added to 3 - 5 i is 4 - 3 i and 1 + 2 i multiplied by 3 i is (1 x 3 i) + (2 i x 3 i) = -6 + 3 i.
  11.  
  12. The Mandelbrot Set
  13. If a real number greater than one is squared, the resulting number is larger than the original number. If you repeat the process of squaring over and over again, a sequence of progressively larger numbers is produced. Even starting with a number  "close" to 1, like 1.0001, eventually very large numbers are obtained. On the other hand, if you start with a number between zero and 1, and carry out the same process, eventually numbers very close to 0 are obtained. This happens even if you start very close to 1. 
  14. Now take a fixed number k, and consider the repeated (or iterated) process of squaring and adding the fixed number k.
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22. For example, if k is 0, this is the same process as before. Now vary the number k but always start with the number 0. Taking k = -2 we get the sequence -2, 2, 2, 2, . . .  which stays constant, whereas taking k = -2.1 gives the sequence -2.1, 2.31, 3.2361, 8.37234, 67.9961, 4621.37 and then the values become huge; that is they "escape to infinity".
  23. Taking k = -1 gives the sequence -1, 0, -1, 0, -1, 0, -1, . .  which oscillates forever between -1 and 0. Taking k = -1.3 gives the sequence -1.3, 0.39,  -1.1479, 0.0176744,  -1.29969, 0.389188, -1.14853, 0.0191275, -1.29963, 0.389049,  -1.14864, 0.0193761, -1.29962, 0.389024, -1.14866,  0.0194205, -1.29962, 0.38902, -1.14866, . which now cycles forever around the last 4 numbers.  Thus some sequences escape to infinity and some are trapped forever.
  24. Extending this process out from the real axis into the complex plane, the Mandelbrot set consists of all the complex numbers k which do not produce an"escape to infinity" under this procedure. The number -1.3 sits near the centre of the left hand circular region.
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40. Exploring the Mandelbrot Set with Fractal Explorer
  41. For the points which do escape, Fractal Explorer follows the usual practice of providing colours to indicate the number of iterations needed for the sequence to escape further than a specified given fixed distance away from 0. The "escape constant" used in Fractal Explorer is the square of the escape distance. If a number has not escaped after a specified maximum number of iterations, the corresponding point (pixel) is coloured black. This is the standard, or default, colouring scheme. Fractal Explorer provides variations on this colouring scheme, which are described below. It is not always easy to determine a suitable choice for the maximum number of iterations ahead of time. If it is set too low, points get coloured black when further iterations would show that they really don't belong to the Mandelbrot set. On the other hand, if it is set to a high value, the constuction of the fractal may take a while. For initial quick explorations it's a good idea not to set the maximum number of iterations to a high value. You can also speed up drawing for initial explorations by using a small window.
  42. The main tool for exploring all the fractals which can be drawn with Fractal Explorer is the "Select for Zoom" operation in the parameters menu. This operation allows you to select parameters which will produce an enlarged rendering of the selected region. The selection rectangle is constrained to a rectangle which has width to height in the ratio 4 to 3 which corresponds to the pixel proportions used for most monitor screens. The dimensions of the drawing windows are restricted in a similar way. 
  43. If you do some exploring, you will soon discover that the Mandelbrot fractal is incredibly complicated, in fact it is infinitely so. In practice, there is a limit to the depth to which you can zoom into the fractal when the calculations are performed in the the double precision floating point format handled by the PowerPC chips. When this stage is reached the images become "pixelated".  At the cost of much longer calculation times, a switch to higher precision  can be made to allow deeper zooming.
  44. Fractal Explorer incorporates cycle detection, using an empirical formula to increase the length of cycles to look for as the number of iterations increases. If a cycle is detected, then no further iterations are performed. There is an option to colour points of the Mandelbrot set, corresponding to detected cycles, in a grey colour instead of black, with the opportunity of later hiding this grey colour by switching to a dark grey which is indistinguishable to the eye from black.
  45.  There are two modes for tracing out all the points in the window in which the fractals are drawn. The calculation can be performed either by tracing down the window a line at a time, or by using a rectangular subdivision approach. The subdivision method, which is the default option, is based on the following principles. If the perimeter of a rectangle is traversed and no escape points are found, it can be assumed that all the interior points are members of the Mandelbrot set, and such points can be coloured black without the need for further calculation. Although the Mandelbrot set is not connected, it doesn't have any "holes". Similarly, if all points around the rectangle are found to be cycle points, then it can be assumed that all interior points produce cycles without the need for calculation. You can switch off the subdivision mode by unchecking "Use subdivision" in the function menu. 
  46. If the "show cycles" option is chosen in the function menu along with the subdivision option, the calculation will generally be slower because subdivision is used only to detect cycle points. You can see how this works by checking "show skeleton" in the options dialog. In this mode only points for which calculations are performed are coloured.  Of course, there is no advantage to using subdivision if all points, or nearly all points, in your fractal escape to infinity, and you may as well draw the fractal line-by-line.
  47.  
  48. Colouring Options
  49. Alternative colouring schemes for the 'inside' or non-escape region are provided. By choosing "Minimum distance from the origin" with a particular "sensitivity", a colour will be obtained using the closest distance which a point approaches the origin during its wanderings. The sensitivity refers to the accuracy with which this distance is measured, with smaller sensitivity values corresponding to coarser measures and higher sensitivity values corresponding to the finer measures.  Similarly, by choosing "Minimum distance from the axes", a colour will be obtained using the closest approach distance to either of the axes.
  50. If you wish to use one of these options, it is usually best to draw a small sample fractal first, with the sensitivity around 4 or 5, and then adjust the sensitivity up or down to produce the desired effect. Note that the "subdivision" method of drawing is automatically switched off when the inside colouring is set to anything other than "black".
  51. The default method of colouring escape points is to use a one-to-one correspondence between the number of iterations and  252 non-grey colours in each colour table. When these colours are exhausted,  Fractal Explorer returns to the first colour and cycles through the colour table again. After zooming some way into a fractal, it may happen that the different coloured bands become crowded very close together. This crowding can be reduced by departing from a one-to-one correspondence or linear colour map and applying a power function to the number of iterations before mapping into the colour table. For example, power 0.95 changes the spread of colours only slightly, while power 0.5 takes the square root of the number of iterations before mapping to the colour table.
  52. The method of colouring by means of the closest approach to the axes can also be applied to escape points, and when this method is chosen for both inside and outside colouring, the sensitivities can be chosen to match, if desired, so that the boundary between escape and non-escape regions is no longer easily discernible. The "argument" colouring method uses the argument of the complex number at escape to determine the colour. The argument of a complex number is the angle which the line joining the origin to the point which represents the complex number makes with the positive direction of the horizontal axis.
  53.  
  54. Redrawing
  55. In order to keep memory requirements to a reasonable level, Fractal Explorer only records the colour for each point as an index into a 256 entry colour table and does not record information about the the actual final number of iterations performed or the complex number obtained at the end of the calculation. This means that, in order to improve a picture, it might seem that one has to recalculate from scratch with a higher setting for the maximum number of iterations.  This is probably the best thing to do if there is a large black area. There is an alternative which might be good to use if there is not too much black in the picture. 
  56. If the redraw option is chosen, rectangular subdivision is not used, but calculations are perfomed only for points which are coloured black. Note that this does not include the near black colour used to hide the cycle grey. This means that starting off in the "show cycles" mode, can be advantageous if you are likely to want to use the redraw option later.
  57.  
  58. Representation of complex numbers by pixels
  59. Because pixels actually have a physical size, a choice has to be made in the way that pixels correspond to real number coordinates, or equivalently, to complex numbers. Fractal Explorer takes the real number coordinates cooresponding to the centre of a pixel. Although there are no axes drawn in the fractal pictures, you can navigate around using the cursor coordinates which are displayed in the information window.
  60.  
  61. Symmetry
  62. Most of the escape fractals drawn by Fractal Explorer are symmetrical with respect to the real axis. This leads to the possibility of making use of this symmetry to determine the colour to associate with a pixel by using the colour of its symmetrical counterpart, if the colour of this pixel has already been determined. Unfortunately, unless the line of symmetry coincides exactly with the dividing line between neighbouring pixels, small errors arise. These may not be noticable visually, but it is disatisfying to know that they are there. Consequently, Fractal Explorer only avoids calculation because of symmetry when the line of symmetry is in the middle of the fractal picture in the vertical aspect. This feature is useful for explorations along the real axis. To zoom in to a section of the real axis, first make a zoom selection to determine your image width, and then choose the "align to real axis option" from the parameters menu. Finally choose "Draw" from the fractal menu.
  63.     
  64. Saving your pictures
  65. The fractal pictures are saved essentially in PICT format with the parameters which tell Fractal Explorer how to draw the fractal stored within the first 255 bytes of the file. For a genuine "PICT" file these first 255 bytes are left blank. Fractal Explorer tries to prevent a picture from being saved unless the the picture matches the current parameters, as displayed in the information window. In addition, a coloured border appears around any fractal picture which does not match the associated parameters. It is possible to have a partial picture displayed, if the drawing is stopped before completion, and the "keep partial picture" option is chosen, but, if it is to be saved, this partial picture must match the associated parameters. Choosing the "Revert Parameters" item in the Parameters menu will revert to a collection of parameters which match the fractal picture, and remove the coloured border. There is a mini-clipboard  which can be used to transfer parameters from one window to another using "Copy Parameters" and "Paste Parameters". These parameters are displayed as the "Saved Parameters" in the information window.
  66. There is no way to save parameters alone without an associated picture. If you want to save a reference to an interesting region, just make a small fractal picture by chosing a small size window in which to draw the fractal. A partial picture can be saved, if desired.
  67. The "Copy" item from the "Edit" menu may be used to copy a selected rectangular portion of the fractal picture to the clipboard. This provides a means for transferring fractal pictures to other programs.  Alternatively, fractal pictures can be saved in the standard PICT format and then opened in SimpleText or another program for further manipulation and/or printing.
  68.  
  69. Determining the cycle length for a region
  70. In addition to the colour patterns that are obtained from the "speed of escape" for points (or complex numbers) outside the Mandelbrot set, there are patterns related to the length of cycles associated with different regions. For example, points in the large "kidney-shaped" region give rise to sequences which converge to a single number; that is, the cycle length associated with this region is 1. Points in the circular region to the left of the first region give rise to sequences which converge to cycles of length 2.
  71. From the programming point of view, one can attempt to determine the length of a cycle towards which a sequence is converging by recording the complex number obtained at some stage along the sequence and then counting terms of the sequence until the sequence returns to a complex number sufficiently close to the one which has been recorded. Fractal Explorer makes sample recordings of complex numbers along a sequence with an ever widening gap between successive samples. This is necessary to allow for different rates of convergence and for differing cycle lengths. Even so, it is entirely possible to "miss" a close encounter and end up giving a cycle length which is a multiple of the actual length. Fractal Explorer attempts to overcome this difficulty in the following manner.
  72. To find the cycle length associated with a given region first choose the "cycle length" option from the fractal menu. Then use the mouse to select a rectangular region inside the region you are exploring. Fractal Explorer then investigates the sequences corresponding to the pixel points in this rectangular region starting with the perimeter and then working inwards. The calculation for each sequence is allowed to run to a maximum of 100 times the maximum number of iterations which have been used in drawing the fractal as recorded in the fractal specification. This can be changed to a larger multiple, but this is not usually necessary unless the cycle length invloved is very long. The number of iterations required to detect a cycle of length c is (c^2)/6. Fractal Explorer displays both the greatest common divisor and the minimum of all the cycle lengths calculated.
  73. The successively smaller regions adjoined to the left of the main kidney-shaped region have associated cycle lengths which progressively double as you go to the left. If you perform the lengthy task of zooming in to these regions you can end up looking at regions with large cycle lengths and with correspondingly long calculation times. In cases like this it may be sufficient just to sample a few points, or to stop the calculation before all selected points have been dealt with. This can be done from the keyboard using "command period" or "command Y". Alternatively, select "Stop" from the fractal menu.
  74. The following picture illustrates the convergence towards a two cycle for the logistic function given by z' = k  z (1 - z) with k = 3.2. The starting number for the sequence is 0.1. In this case only real numbers are involved and one obtains the sequence geometrically by following a path made from the red straight line pieces which go alternately vertically and horizontally between the green straight line graph of w = z and the blue curve for the equation z' = k  z (1 - z). The individual terms of the sequence occur both as z and w coordinates of the corner points.
  75. If the numbers constituting the 2-cycle are designated by p and q, then the red lines approach a rectangle with vertices (p,p),(p,q),(q,p) and (q,q).
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100. Julia Fractals
  101. Julia fractals are constructed by iterating the same equation
  102.  
  103. except that k is kept constant and the initial value of z is varied over a region of the complex plane. The general appearance of the Julia fractal with constant k is often similar to the to the local (magnified) Mandelbrot fractal in the neighbourhood of the point k. If an appealing Mandelbrot fractal has been obtained by zooming, it may be of  interest to draw a Julia fractal with the constant k taken as the centre of the zoomed Mandelbrot fractal. This conversion of parameters is performed by Fractal Explorer by choosing "Convert to Julia" from the Parameters menu. Because "Convert to Julia" does not require the fractal picture to match its parameters, the "Select Centre" procedure can be applied first in order to effectively choose k to be any point in the Mandelbrot fractal picture.
  104.  
  105. Initialization
  106. The initial value of z used in the iteration formula for the Mandelbrot fractal is z = 0 +0i. Changing this value may result in a corresponding change or perturbation of the fractal. The initial value can be changed to another fixed complex number, or set to vary as some function of the complex number k corresponding to the current pixel. For the Mandelbrot fractal, setting the initial value to be the current pixel value k produces the same result as iterating with the starting value z = 0 +0i, because one iteration of  z = 0 +0i produces k anyway.
  107.  
  108. Other escape fractals
  109. Fractal Explorer can construct a number of escape fractals similar to the Mandelbrot set. Those which involve trigonometric and other transcendental functions are generally slower to draw. Julia type fractals also can be constructed in the same manner as for the Mandelbrot fractal. Fractal Explorer also allows iteration formulas to be be built up according to specific patterns using a choice of functions and parameters obtained from appropriate dialogs.
  110. For example, the formula z' = z^6 + k, which is one of the "built in" formulas, can also be constructed in all of the following ways.
  111.     1. pr*fn + k with the function fn taken to be z^6 and the parameter pr chosen to be 1.
  112.     2. fn*fn + k with the two functions taken to be z^4 and z^2 in either order.
  113.     3. fn of fn + k with the two functions taken to be z^2 and z^3 in either order.
  114.     4. z*fn + k with the functions taken to be z^5 .
  115.     5. fn • fn + k with the operation • = * and functions taken to be z^4 and z^2 in either order.
  116.     6. fn • fn + k with the operation • = / and functions taken to be z^8 and z^2 in that order.
  117.  
  118. Newton Fractals
  119. A useful numerical method for computing the roots of equations is the so-called Newton method.
  120. As an illustration involving real numbers let's look at the computation of √2 by determining the x value at the point where the curve with equation 
  121.  
  122. crosses the x axis.
  123. Start by guessing an initial  approximation. For simplicity let's start with 2, even though this is obviously too big. From the point on the x axis where x = 2, move vertically up till you hit the curve. Then follow the tangent at this point down and to the left till this tangent meets the x axis. The x value here turns out to be 1.5 and is a closer approximation to √2 than the number we started off with. Now repeat this process.  Starting from the point x = 1.5 on the x axis, move up till you hit the curve and then follow the tangent line at this point down and to the left till you meet the x axis. In the following picture this second tangent is barely distinguishable from the curve.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147. Anyone familiar with calculus can readily obtain the formula x' =  x/2 + 1/x which expresses the new approximation x' in terms of the old one x. This formula shows that the new approximation to √2 is 17/12 or 1.41666.. which is still larger than √2, of course, but is closer than the previous estimates. Applyng the formula a third time gives  577/408 or 1.4142157.. which coincides with √2 up to the 4th decimal place. 
  148. In general, Newton's method converges rapidly, but this is not always the case. If you start with 0 as your first estimate, the formula doesn't work at all. Geometrically, the tangent line to the curve where x = 0 is parallel to the x axis, and so never meets the curve. If you start with a number close to 0, then the next approximation to √2 given by the formula isn't close at all. If the starting number is small and positive, the formula gives a large positive number. If the initial number is small and negative, the formula gives a large negative number. In both cases we are sent way off to start with, but applying the formula repeatedly afterwards will eventually produce convergence to √2. The picture shows what happens if you start with 0.1 or -0.1.
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156. This  method can be applied to equations involving complex numbers, although the procedure can no longer be visualized graphically. The general iterative formula applied to the solution of f(z) = 0 is
  157.  
  158.  
  159.  
  160.  
  161. where f'(z) is the derivative of the function f. 
  162. For an example, the equation 
  163.  
  164.  
  165.  
  166. has solutions given by the complex 4th roots of 1, namely : 1, -1, i, -i. These roots lie on the real and imaginary axes as shown in the picture. 
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187. Even though we already know what the roots are, we can still apply the Newton formula, which in this case is.
  188.  
  189.  
  190.  
  191.  
  192. In this 2 dimensional situation our starting number can be any complex number corresponding to a point in the complex plane. You might guess that the blue diagonal lines would provide boundary lines dividing the complex plane into 4 distinguished regions, such that all the points in the region containing one of the four roots eventually converge to the particular root which this region contains. However, the situation is much more complicated. If we colour all the points which converge to the same root, we end up with a fractal. The number of iterations required to end up within a specified distance from the associated root can be indicated by, for example, varying the shades of the corresponding colour in a cyclical fashion.
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209. You can use Fractal Explorer to zoom in and investigate this fractal along with a number of other similar fractals.
  210. As we saw from the √2 example, the convergence is often quite rapid, so these fractals usually involve less computation time than escape fractals. Again there are exceptions; if you zoom in towards zero in the 4th roots of 1 fractal, the convergence becomes slower, and if the maximum number of iterations is not set high enough, you won't obtain convergence. This will be indicated by a grey area. As with the escape fractals, there is a limit to the extent to which you can zoom in. This is not quite as frustrating as it can be in the case of escape fractals though.
  211. The "Find Root" procedure can be used to determine the complex root associated with any point in the fractal picture and the number of iterations required for convergence.
  212.  
  213. Other Newton Fractals
  214. Fractal Explorer can draw various Newton type fractals including some parameterized families of fractals. A "Parameter Space" provides a sort of "map" for these fractals just as the Mandelbrot fractal gives a map of Julia fractals.
  215.  
  216. Changing colours and colour animation
  217. There are a choices of "built-in" colour tables for each of the two groups of fractals. The colour scheme can be chosen before drawing, or changed after drawing, either directly through the colour menu or by clicking on the appropriate bar in the colour display.  If you wish to design your own colouring scheme, this can be done by constructing a custom colour table using an editor appropriate to either escape fractals or Newton fractals. Custom colour tables are saved in the Preferences File in the System Folder.
  218. The colours in both types of fractals can be animated cyclically. When animating an escape fractal there are a maximum of 252 colours to cycle through. To obtain colour schemes with effectively shorter periods, some of the colours tables are divided up into a almost identical groupings. For Newton fractals the animation of colours is through a maximum of 25 "shades' within each colour group corresponding to a particular root of the fractal's equation. For these fractals, you can change the colour associated with each root, either randomly, or in a specific manner.
  219. The animation speed can be changed by using the slider control which is displayed when "Animation speed" is chosen from the Fractal menu.
  220.  
  221. Scrolling animation
  222. The auto-scrolling choices in the Fractal menu allow animation by moving a fractal picture both horizontally and vertically. This animation procedure requires the fractal picture to be first resized to less than 90% of its maximum width and/or height, depending on the direction of animation. The picture can then be scrolled automatically such that the direction of scrolling changes at each end. By constructing a picture which is a good bit larger than the chosen display area, one can obtain an animation which covers a variety of fractal scenery.
  223.  
  224. Using a fractal picture as a screen saver
  225. To use a fractal picture as a screensaver, you first need to construct a fractal picture in a window which has the same pixel dimensions as your main screen. If you wish to use scrolling animation the pixel dimensions must be at least 10% larger than those of the screen. Of course, you can have one saved ready for this purpose. The picture can then be made to fill the whole screen by first choosing "Centre window" from the window menu and then "Hide menu bar". You can then animate the picture. To make the cursor disappear, simply click the mouse, but do not move it because that makes it reappear. The quickest way to get rid of this animated picture is to quit "Fractal Explorer" by typing "command Q". If you don't want to quit the program, the menu bar reappears if you move the cursor to the area where it should be, or type "command H". The window title and surrounds can be made to reappear by choosing "Put window under menu bar".
  226.  
  227. Preferences
  228. The general operating mode of the program can be set using the "Preferences" dialog which is displayed by choosing "Preferences" from the file menu. The default settings can be retrieved by clicking the "Revert" button.
  229. Setting the number of ticks for which the program retains control to a high value causes the program to stay inside any currently active calculation loop for the chosen time interval. No other operations can be performed, either within the program or outside, during this time. If you want to let the program calculate in the background while another program is active in the foreground, this value must not be set too high. In such circumstances the time for the program requesting return of control when in the background should not be set too low.
  230. One can choose whether to provide a new window at program launch time, and also specify the size of this window.
  231. The colour of the border which is used to indicate non-matching parameters can be chosen by means of the Mac OS  'Color Picker' dialog.
  232. The mode in which the fractals are drawn can also be set using check boxes in this dialog. When fractals are drawn directly to the window, the previous picture is saved in a buffer until the drawing is complete. If the drawing is stopped before completion, the old picture is restored to the window. On the other hand, if a direct drawing is not chosen, the new picture is drawn into a buffer and if there is already a picture in the window, it continues to be displayed until the new picture is complete.
  233. The only purpose of the option to "show skeleton" is to demonstrate something of how the subdivision process of drawing escape fractals works.
  234.  
  235. Dialogs
  236. All dialogs are modal, and so must be handled before the program can continue.
  237.  
  238. Disclaimer
  239. I certainly hope that Fractal Explorer doesn't crash your computer, but if it does, I'm afraid I can't be held responsible for the consequences. In fact I disclaim responsibilty for any bad happenings that may occur in connection with this program.
  240. USE THIS SOFTWARE AT YOUR OWN RISK. IN NO EVENT SHALL I, PETER STONE, BE RESPONSIBLE FOR ANY CONSEQUENTIAL, INCIDENTAL OR INDIRECT DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING OUT THE USE OF OR INABILITY TO USE THIS SOFTWARE EVEN I HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. I EXPRESSLY DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  241.  
  242. Acknowledgements
  243. I have made extensive use of currently available literature on Macintosh programming. The application framework is based on that in Jim Trudeau's book "A Programming Starter Kit", but contrary to his suggestion, I have altered it quite a bit. I have also made use of segments of code from "Mac Programming FAQ's" by Stephen Baker and Dave Mark. The floating information window is an Infinity Windoid and the sliders are thanks to Tiger Technologies. I obtained these from the book "A Fragment of Your Imagination" by Joe Zobkiw.
  244. I have been influenced by other fractal drawing programs for the Macintosh, such as "Power Explorer", "Mandelbrain" ,"Mandella" and "Fractal Domains".
  245. Mathematica has been an indispensible tool in the development of Fractal Explorer. Many algorithms were tested in Mathematica before being coded in C. The accuracy of the special function routines was checked with Mathematica's arbitrary precision functions, and I used Mathematica to find approximations for the quadruple precision elementary functions.
  246.  
  247. Peter Stone,13, Rattray Road, Montmorency, Victoria, Australia, 3094.
  248.  
  249.  
  250.